Modern digital imaging devices implement a large portion of their functionality through one or more embedded computer systems. For example, typical digital imaging devices such as digital cameras and the like typically include an imaging device which is controlled by an embedded computer system built into the camera. When an image is captured, the imaging device is exposed to light and generates raw image data representing the image. The raw image data is processed and compressed by the computer system into a file, and subsequently stored in either an internal memory or an external, detachable, memory.
Many types of digital imaging devices are also equipped with a liquid-crystal display (LCD) or other type of display screen. The incorporation of an LCD allows the digital imaging device to be easily controlled and manipulated, and also provides an intuitive and easily used method of displaying device status, operating mode, stored images, and the like to the user.
In the case of a digital camera type imaging device, for example, two of the most commonly implemented digital camera modes are play mode and record mode. Typically, in play mode, the digital camera's LCD is used as a playback screen for allowing the user to review previously captured images either individually or in arrays of four, nine, or sixteen images, while in record mode, the LCD is used as a viewfinder in which the user may view an object or scene before taking a picture.
In addition to an LCD, the user interfaces of most digital cameras also include a number of buttons or switches for configuring the operating modes of the camera, navigating between images in play mode, and the like. For example, most digital cameras include buttons (e.g., two buttons labeled "-" and "+") that enable a user to navigate or scroll through captured images. For example, if the user is reviewing images individually, meaning that single images are displayed full-sized in the LCD, pressing one of navigation buttons causes the currently displayed image to be replaced by the next image. The digital camera can also include several software programmable buttons (often referred to as softkeys). The software applications (executing on the embedded computer system) implement the functionality of the digital camera by interfacing with the user via the buttons, the LCD screen on the back of the camera, and the like.
Several more recent types digital electronic imaging devices include a built-in LCD touch-screen display for implementing all or part of their user interface. These devices typically employ graphically depicted buttons on the touch-screen itself to accept user input. The user presses the touch-screen depicted button to, for example, scroll through captured images, switch between operating modes, and the like. The software applications that implement the functionality of touch-screen equipped digital cameras interface with the LCD touch-screen display. In some cases, the software applications use the LCD touch screen display to implement the majority of their interaction with the user.
Such software applications are typically designed to interface with the hardware of the touch screen equipped digital camera via an operating system executing on the embedded computer system of the camera. The operating system typically provides support for these applications, providing the low level services and routines needed to operate the touch screen, interpret commands from the user, etc. The software applications are designed to interface with the support structure, services, routines, etc., of the operating system.
There is a problem, however, in that software applications developed for non-touch-screen equipped cameras are not compatible with touch-screen equipped cameras. Unfortunately, non-touch-screen equipped digital cameras make up a majority of the camera type existing in the market. The new touch-screen equipped digital cameras will not be able to use the large number of applications developed for the non-touch-screen equipped digital cameras. The operating platform provided by the touch-screen equipped digital camera is different than the operating platform provided by the non-touch-screen equipped digital camera. For example, applications for touch-screen equipped digital cameras utilize touch-screen specific application drivers, programming interfaces, and the like to implement their input output (IO) functionality. Similarly, applications for non-touch-screen digital cameras utilize their own respective set of drivers, programming interfaces, and the like. There is no standardized ability to support both "touch-screen aware" apps and "button aware" on the same digital camera (whether the camera is equipped with a touch-screen or not). Ideally, the software applications should be portable between the types of digital cameras, to make the process of developing applications for new features, improvements, bug fixes, and the like, more efficient.
This same problem exists with other types of digital imaging devices which rely upon an operating system to implement a platform for running various software applications. Digital imaging devices designed to run touch screen aware apps will be incompatible with button aware apps. There is no standardized ability to support both types of applications on the touch screen equipped digital imaging device.
Thus, what is required is a system that provides a common platform for touch-screen aware apps and button aware apps. The required system should transparently support both touch-screen aware apps and button aware apps using the same underlying hardware of a touch-screen equipped digital imaging device. In addition, the required system should support button aware apps and touch-screen aware apps without requiring any changes to their embodying software code. The present invention provides a novel solution to the above requirements.